package com.dcj.seas.todocupones.service;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.accounts.NetworkErrorException;
import android.content.Intent;
import android.os.Handler;
import android.util.Log;

import com.dcj.seas.todocupones.activity.MenuActivity;
import com.dcj.seas.todocupones.activity.WaitActivity;
import com.dcj.seas.todocupones.constants.Constants;
import com.dcj.seas.todocupones.model.OfertaBean;
import com.dcj.seas.todocupones.utils.DatosEstaticos;
import com.dcj.seas.todocupones.utils.Post;

public class OfertasService {

	private static JSONArray datos;
	private final static Handler manejador = new Handler();
	private static OfertaBean ofertaBean;

	public static void accionCargarOfertas() {
		Thread hilo = new Thread() {
			public void run() {
				Post post = new Post();
				try {
					datos = post.getServerData(null, Constants.URL_OFERTAS);
					manejador.post(proceso);
					DatosEstaticos.setInternet(true);
				} catch (NetworkErrorException e) {
					Log.e("accionCargarOfertas", "No hay internet");
					DatosEstaticos.setInternet(false);
				}

			}
		};
		hilo.start();
	}

	private final static Runnable proceso = new Runnable() {
		public void run() {
			List<OfertaBean> listadoOfertas = new ArrayList<OfertaBean>();
			if (datos != null && datos.length() > 0) {
				try {
					for (int i = 0; i < datos.length(); i++) {
						JSONObject json_data = datos.getJSONObject(i);
						ofertaBean = new OfertaBean();
						try {
							ofertaBean.setId(json_data.getJSONObject("id")
									.getString("id"));
						} catch (JSONException e) {

						}
						// ofertaBean.setCategoria(json_data
						// .getString("categoria"));
						try {
							ofertaBean.setDescripcion(json_data.getJSONObject(
									"descripcion").getString("value"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setDescripcionLarga(json_data
									.getJSONObject("descripcionLarga")
									.getString("value"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setImagenGrande(json_data
									.getString("imagenGrande"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setLatitud(json_data
									.getDouble("latitud"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setLongitud(json_data
									.getDouble("longitud"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						// ofertaBean.setMoneda(json_data.getString("moneda"));
						try {
							ofertaBean.setNombre(json_data.getString("nombre"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setPrecioActual(json_data
									.getString("precioActual"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setPrecioAnterior(json_data
									.getString("precioAnterior"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						// ofertaBean.setReferencia(json_data
						// .getString("referencia"));
						try {

							ofertaBean.setTerminosDeUso(json_data
									.getJSONObject("terminosDeUso").getString(
											"value"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setUbicacion(json_data
									.getString("ubicacion"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setUltimaModificacion(json_data
									.getString("ultimaModificacion"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setValidoDesde(json_data
									.getString("validoDesde"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setValidoHasta(json_data
									.getString("validoHasta"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setEmpresa(json_data
									.getString("empresa"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean.setUrl(json_data.getString("url"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						try {
							ofertaBean
									.setPorcentaje(json_data.getString("porcentaje"));
						} catch (JSONException e) {
							// TODO: handle exception
						}
						listadoOfertas.add(ofertaBean);
					}
					DatosEstaticos.setListadoOfertas(listadoOfertas);
					Intent inten = new Intent(WaitActivity.getInstance(),
							MenuActivity.class);
					WaitActivity.getInstance().finish();
					WaitActivity.getInstance().startActivity(inten);

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
	};

}
